<?php
/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package       app.Controller
 * @link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {
	
	public $components = array('RequestHandler', 'Session');
	
	public function beforeFilter() {
		parent::beforeFilter();
	}
	
	public function get($name) {
		if ($this->request->is('get'))
			if(array_key_exists($name, $this->request->query))
			return $this->request->query[$name];
		return '';
	}

	public function post($name) {
		if ($this->request->is('post'))
			if(array_key_exists($name, $this->request->data))
				return $this->request->data[$name];
		return '';
	}
	
	public function setResult($status, $data = null, $message = null) {
		$data = array(
				'status' => $status,
				'message' => $message,
				'data' => $data
		);
		$this->layout = false;
		$this->autoRender = false;

		$result = json_encode($data);
				header("Pragma: no-cache");
				header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
				header('Content-Type: text/x-json');
				header("X-JSON: ".$result);
				echo $result;
	}

	public function beginSession($user) {
		$ip = $this->RequestHandler->getClientIP();
		$id = $user['User']['id'];

		$this->Session->write('id', $id);
		$this->Session->write('ip', $ip);
		$this->Session->write('user', $user);		
	}
	
	public function closeSession($user) {
		$this->Session->destroy();
	}
}